1
C++陣列的演進
AI013Lesson 4
00:00

C風格的陣列std::array 代表了朝向 類型安全 以及 泛型程式設計 在現代C++中的根本性轉變。

1. 指標衰減問題

舊式陣列(int arr[N])會遭遇「指標衰減」問題。當傳遞給函數時,它們會失去其大小的元資料,並轉換為原始指標(int*)。這會導致不安全的指標運算與緩衝區溢位。

2. C++11 的現代化

std::array 提供一個輕量級、 零開銷封裝 包裝原始陣列。它能與STL(標準模板庫)整合,同時遵守 五大規則

C++11前(舊式)T[N]衰減C++11後(現代)std::array<T, N>+ std::forward(效率)

3. 使用 std::forward 的完美轉發

C++11 引入了 std::forward 以確保 std::array 物件能透過模板封裝移動而無需重複複製。透過利用 引用收斂規則,我們能保留物件的值类别(左值對右值)。

$$T\&\& + \& \rightarrow T\&$$

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>